/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package trunk.model;

import java.awt.Color;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * Class Dessin 
 * 
 * Représentation d'un dessin
 * 
 * @author LEFEVRE Michael
 * @author THOUE Jonathan
 */
public class Dessin implements Serializable {
    
    /**
     * Attribut de la classe Dessin
     */
    private List<ElementGeo> elements;
    private List<Color> palette;
    private ElementGeo tempElement;
    private Point origine;
    private EDrawTool currentTool;
    private Color currentColor;
    private String name;
    private int pasGrid;
    
    
    /**
     * Constructeur par defaut de Dessin
     */
    public Dessin(){
        elements = new ArrayList<ElementGeo>();
        currentColor=Color.black;
        currentTool=EDrawTool.POINT;
        name ="Sans Nom";
        pasGrid=10;
        origine= new Point(460,500);
        palette = new ArrayList<Color>();
        palette.add(Color.blue);
        palette.add(Color.cyan);
        palette.add(Color.magenta);
        palette.add(Color.pink);
        palette.add(Color.green);
        palette.add(Color.yellow);
        palette.add(Color.gray);
        palette.add(Color.orange);
        palette.add(Color.black);
    }
    /**
     *Get liste des elements géométriques
     *@return La liste des elements géométriques
     */
    public List<ElementGeo> getElements() {
        return elements;
    }
    /**
     *Set liste des elements géométriques
     *@param elements - La liste des elements géométriques
     */
    public void setElements(ArrayList<ElementGeo> elements) {
        this.elements = elements;
    }
    /**
     *Get CurrentTool
     *@return l'outil courrant
     */
    public EDrawTool getCurrentTool() {
        return currentTool;
    }
    /**
     *Set Current Tool
     *@param currentTool - l'outil courrant
     */
    public void setCurrentTool(EDrawTool currentTool) {
        this.currentTool = currentTool;
    }
    /**
     *Get CurrentColor
     *@return La couleur courrante
     */
    public Color getCurrentColor() {
        return currentColor;
    }
    /**
     *Set CurrentColor
     *@param currentColor - La couleur courrante
     */
    public void setCurrentColor(Color currentColor) {
        this.currentColor = currentColor;
    }
    /**
     *Get Name
     *@return Le nom du dessin
     */
    public String getName() {
        return name;
    }
    /**
     *Set Name
     *@param name nom du dessin
     */
    public void setName(String name) {
        this.name = name;
    }
     /**
     *Get PasGrid
     *@return le pas de la grille
     */
    public int getPasGrid() {
        return pasGrid;
    }
     /**
     *Get PasGrid
     *@param pasGrid - le pas de la grille
     */
    public void setPasGrid(int pasGrid) {
        this.pasGrid = pasGrid;
    }
     /**
     *Get Origine
     *@return origine du dessin
     */
    public Point getOrigine() {
        return origine;
    }
    /**
     *Set Origine
     *@param origine - origine du dessin
     */
    public void setOrigine(Point origine) {
        this.origine = origine;
    }
    /**
     *Get setTempElement
     *@return element temporaire
     */
    public ElementGeo getTempElement() {
        return tempElement;
    }
    /**
     *Set setTempElement
     *@param tempElement - element temporaire
     */
    public void setTempElement(ElementGeo tempElement) {
        this.tempElement = tempElement;
    }
    /**
     *Get Palette
     *@return liste des couleurs de la palette
     */
    public List<Color> getPalette() {
        return palette;
    }
    /**
     *Set Palette
     *@param palette - liste des couleurs de la palette
     */
    public void setPalette(List<Color> palette) {
        this.palette = palette;
    }
    
}
